package design.patterns.structural.proxy.staticproxy;

/**
 * @author gjx
 * @version v1.0
 * @Description
 * @date 2019/4/3 14:41
 */

/**
 * 代理模式中的角色：
 *
 * 1.抽象对象角色
 *
 * 声明了目标类及代理类对象的共同接口，这样在任何可以使用目标对象的地方都可以使用代理对象。
 *
 * 2.目标对象角色
 *
 * 定义了代理对象所代表的目标对象。
 *
 * 3.代理对象角色
 *
 * 代理对象内部含有目标对象的引用，从而可以在任何时候操作目标对象；
 * 代理对象和目标对象具有统一的接口，以便可以再任何时候替代目标对象。
 * 代理对象通常在客户端调用传递给目标对象之前或者之后，执行某些操作，而非单纯的将调用传递给目标对象
 */
public class Test {
    public static void main(String[] args) {
        Activity lawyer = new Lawyer(new People());
        lawyer.prosecute();
    }
}
